<template>
  <div class="container">
    <import-item :delRow="delRow" :table-column="tableColumn" :api-param="apiParam" :api-url="apiUrl"
      :validate-data="validateData" :uni-key="uniKey" :handle-data="handleData" :excel-address="excelAddress"
      @success="success"></import-item>
  </div>
</template>
<script>
import ImportItem from '@/components/Import'
export default {
  props: {
    // 合同id
    contractId: {
      type: String,
      default: () => {
        return ''
      }
    }
  },
  components: { ImportItem },
  data () {
    return {
      // 删除行
      delRow: 2,
      // api地址
      apiUrl: '/api/ac/maintain/infoDeviceService/editImportDeviceData',
      // 表格表头
      tableColumn: [
        { value: 'id', label: '资产id' },
        { value: 'third_check_msg', label: '审核意见' },
        { value: 'third_check_amount', label: '审核金额' },
        { value: 'serve_start_date', label: '运维开始时间' },
        { value: 'serve_end_date', label: '运维结束时间' }
      ],
      // excel地址
      excelAddress: '/static/excel/it.xlsx',
      // 预前校验数据重复的key
      uniKey: '',
      // 问题单元格的颜色配置
      troubleColor: {
        cellColor: '#42b883',
        cellBgColor: '#cbe4df',
        cellRepeatColor: '#eee',
        cellRepeatBgColor: '#90c3f6'
      },
      // 格式校验方法
      validateData: this.validateDataMethos,
      // 数据处理方法
      handleData: this.handleDataAction
    }
  },
  methods: {
    /**
       * 数据处理
       * @param item    每条数据
       * @param error   错误标识
       * @param tName   错误样式标识
       * @returns {boolean} 必须将error入参带回
       */
    validateDataMethos (item, error, tName) {
      // 运营商为其他时，其他运营商不能为空
      if (!item.id) {
        item.id = 'id不能为空'
        item.cellClassName.id = tName
        error = true
      }
      if (!item.third_check_msg) {
        item.third_check_msg = '审核意见不能为空'
        item.cellClassName.third_check_msg = tName
        error = true
      }

      const regex = /^\d*(?:\.\d{0,4})?$/
      if (!item.third_check_amount && item.third_check_amount != 0) {
        item.third_check_amount = '金额不能为空'
        item.cellClassName.third_check_amount = tName
        error = true
      } else if (!regex.test(item.third_check_amount)) {
        item.third_check_amount = '金额不能为空'
        item.cellClassName.third_check_amount = tName
      }

      const dateRule = /^([1-9]\d{3})-(\d{2})-(\d{2})$/
      if (!dateRule.test(item.serve_start_date) || item.serve_start_date.length != 10) {
        item.serve_start_date = '请填写yyyy-mm-dd格式日期'
        item.cellClassName.serve_start_date = tName
        error = true
      }
      if (!dateRule.test(item.serve_end_date) || item.serve_end_date.length != 10) {
        item.serve_end_date = '请填写yyyy-mm-dd格式日期'
        item.cellClassName.serve_end_date = tName
        error = true
      }
      return error
    },
    handleDataAction (item) {
      return item
    },
    success () {
      this.$emit('success')
    }
  },
  computed: {
    // api附加参数
    apiParam () {
      return { contract_id: this.contractId }
    }
  }
}
</script>
</script>
<style lang='scss' scoped>
</style>
